package main

import (
	"fmt"
	"log"

	"ddl_checker/internal/clipboard"
)

func main() {
	fmt.Println("=== Excel 剪贴板解析器使用示例 ===")

	// 创建剪贴板管理器
	manager, err := clipboard.NewClipboardManager()
	if err != nil {
		log.Fatalf("创建剪贴板管理器失败: %v", err)
	}

	// 尝试从剪贴板获取Excel数据
	excelData, err := manager.GetExcelData()
	if err != nil {
		fmt.Printf("获取Excel数据失败: %v\n", err)
		fmt.Println("请先从Excel复制一些数据到剪贴板，然后重试")
		return
	}

	if excelData.Success {
		fmt.Printf("成功解析Excel数据!\n")
		fmt.Printf("行数: %d, 列数: %d\n", excelData.RowCount, excelData.ColumnCount)

		// 显示前几行数据
		maxRows := min(5, excelData.RowCount)
		for i := 0; i < maxRows; i++ {
			fmt.Printf("行 %d: %v\n", i+1, excelData.Data[i])
		}

		// 转换为CSV格式
		csvData := clipboard.FormatAsCSV(excelData.Data)
		fmt.Printf("\nCSV格式数据:\n%s\n", csvData)

		// 转换为HTML表格
		htmlTable := clipboard.FormatAsHTMLTable(excelData.Data, true)
		fmt.Printf("\nHTML表格:\n%s\n", htmlTable)

	} else {
		fmt.Printf("解析失败: %s\n", excelData.Error)
		fmt.Println("请确保从Excel复制了包含表格格式的数据")
	}
}

func min(a, b int) int {
	if a < b {
		return a
	}
	return b
}
